Web services have gained tremendous momentum in recent years as an emerging disruptive technology with applications in various market sectors and fields. The fast adoption of web services reflects the current industrial paradigm shift from Object Oriented Architecture (OOA) to Service-Oriented Architecture (SOA) for business computing. It reinforces the significance and importance of web service technologies in creating reusable, reliable and scalable business services that are loosely coupled with physical implementations and agnostic to hardware devices, operating systems, transport protocols, programming models and languages.
One contributing factor to the success of web services is the maturity and proliferation of web service enablement packages and SOAP engines, such as Axis, and web service orchestration integration development environments (IDE) based on WS-business process execution language (BPEL). These web service packages collectively have made the development, testing and deployment of stateless, synchronous and one-way web services a relatively straightforward task when there is a clear boundary and separation between the client and server.
However, the use of web services to enable communication introduces many new technical challenges. In particular, telecommunication services typically exhibit some distinct characteristics such as generally requiring stateful transactions. Telecommunication services are stateful in two ways. First, it is usually necessary to establish a session association among clients and service providers before any subsequent message exchange can happen. Second, the message exchanges in communication often involve many stateful resources. Another characteristic of telecommunication services is two-way message exchange. In telecommunication services, the role of client and server can be reversed such that a client can also act as a server during the interaction.
Telecommunication services also exhibit asynchrony. Asynchronous messages arise because of scalability issues and the event-driven nature of communication services. Telecommunications also involve conversational interaction patterns; the message exchange patterns between a client server are highly conversational in the sense that the client and server repeatedly exchange messages back and forth in order to reach a goal. Real-time factors are also involved because message interactions must generally occur in real-time to satisfy Quality of Service (QoS) requirements for certain communication services. Reliability is also generally more critical in telecommunications services than in some other services because undelivered, delayed, out-of-order or duplicated messages may put a system into an incorrect state.
To address these issues, one needs to work with the current web service technologies and protocol standards in order to achieve interoperable solutions between services and platforms. The relationship between services is complex. For example, a communication service may depend on several other web services, which in turn may depend on each other. Without a generic framework, the cost of web service enablement would likely become prohibitive. It would therefore be desirable to provide a method and apparatus for web service enablement of communication and other stateful services that addresses the above and other limitations of current web services and web services enablement packages.